import Vue from 'vue'
import Vuex from 'vuex'
// 这里要使用同一个router对象，不要引用node_modules里面的
import createPersistedState from 'vuex-persistedstate'
import * as maps from "./mapMutations"
import { apiMenuList } from '@/axios/api.system';
Vue.use(Vuex)

// 初始化
export default new Vuex.Store({
	plugins: [createPersistedState({
		paths:['rootVuexvalue','user']//要缓存的路径
	})],

	state : {
		rootVuexvalue: 'test',
		loading:false,
		drawer:false,
		sender:'',
		menu:[],//系统菜单，这个不要缓存
	},
	mutations: {
		[maps.SET_LOAIND](state,value) {
			state.loading = value
		},
		[maps.SET_DRAWER](state,value) {
			// console.log('设置了drawer')
			state.drawer = value
		},
		SET_MENU(state,value){
			state.menu = value
		}
	},
	actions : {
		userLoginTest() {
			console.log('这里是vuex根目录方法');
		},
		// 获取系统菜单
		getMenuList({ commit }) {
			apiMenuList()
				.then(res => {
					console.log('加载了菜单数据：',res);
					commit('SET_MENU',res.data)
				}).catch(err => {
				console.log(err)
			})
		}
	},
	modules : {
		...(r => {
			return r.keys().reduce((c, n) => {
				c[n.replace(/\.\/|\.js/gi, '')] = r(n).default
				return c
			}, [])
		})(require.context('./modules/', true, /\.js$/))
	}
})
